# 查阅资料，通过实例分析Numpy的copy与 = 之间的区别。如：
# a = np.arange(4)
# b = a
# c = a.copy(a)
# 说明b和c的区别是什么。
import numpy as np

a = np.arange(4)
b = a        # 普通赋值
c = a.copy() # 深拷贝

print("原始数据：")
print("a:", a)
print("b:", b)
print("c:", c)

# 修改b和c的第一个元素
b[0] = 99
c[0] = -99

print("修改后数据：")
print("a:", a)
print("b:", b)
print("c:", c)
# 从输出可以看出：
#
# 使用=符号进行赋值，表示b引用了a的内存地址，即b和a共享同一段内存空间。因此对b进行修改，会同时修改a的值。
# copy()方法创建了数组c以及该数组的深拷贝，并且不使用RawMemoryBuffer缓冲区，这导致两个变量a和c指向内存中不同位置的对象，因此修改c的值不影响原始数据 a 的值。
# 总之，=是基于引用对象进行赋值、操作，两个变量共享同一个内存空间，而copy()会在新的内存地址中创建一个新的数组并拷贝值。
